1. Field of the Invention
This invention relates to web services and more particularly relates to Simple Object Access Protocol (“SOAP”) access to data source procedures.
2. Description of the Related Art
A popular computer network architecture is a client-server network. In this architecture, a client sends requests over a computer network to a server, which responds to the requests. The client-server architecture may be implemented with many network types. The Internet is and example of a computer network that relies on client-server relationships. Clients are typically personal computers, laptop computers, etc. with a web browser. The client sends out requests over the Internet to web servers around the world for web services. Web servers, in turn, may request other web services to formulate a response to the client's request.
A client request may be for a file or a directory, but may also be a request to access a data source procedure. A data source procedure, once called, executes a computer program, a subroutine, or the like, which typically returns information from a data source. Typically a data source procedure requires zero or more parameters to be passed to the data source procedure by way of a procedure call. The data source procedure then may return requested information or results or may also return some kind of message, such as an error message.
One common type of data source is a database. A database is typically managed by a database server or a database management system. A procedure call to the database server may be used to retrieve data from the database managed by the database server. The database server may respond to database commands. Each database command typically performs a different function to manipulate and/or extract data in the database to provide desired information or a desired result. Typically, one or more parameters are passed to a database command using a procedure call. The database command executes and returns requested information or other message. For example, a banking database server may respond to a procedure call containing an account number as a parameter to prepare an account statement.
A data source procedure, or database command if a database is the data source, typically differs from a request for a request for a file, etc. in that the data source procedure requires more than merely retrieving a particular table entry, file, or directory. Many files, directories, tables, etc. are currently available over the Internet by way of a web service in a client-server relationship. Currently, web services are being developed as part of a Service Oriented Architecture (“SOA”). A SOA is advantageous because a client can access information from a server independent of the data path between the client and the server and does not require a connection to be maintained until the response is sent.
One protocol that follows the SOA standard is Simple Object Access Protocol (“SOAP”). SOAP is a protocol for exchanging Extensible Markup Language (“XML”) messages over computer networks such as the Internet, typically using Hypertext Transfer Protocol (“HTTP”). SOAP provides a basic message messaging framework upon which more abstract layers can build. SOAP messages commonly use a Remote Procedure Call (“RPC”) pattern, in which one network node (the client) sends a request message to another network node (the server), and the server sends a response message back to the client. SOAP messages are typically for data source procedures and are distinguished from other HTTP messages that may request a file or directory. SOAP is a popular protocol for XML messages. However, other protocols are also available and provide similar benefits, such as XML Remote Procedure Call (“XML-SOAP”) and Representational State Transfer (“REST”).
Many databases and other data sources are legacy data sources and may not have been designed as a web service. Significant resources may be invested in legacy databases and the owners typically would rather make a database available as a web service rather than converting a database to a type that allows web access. Examples of legacy database programs are DB2® from International Business Machines, Oracle® from Oracle Corporation, MySQL® from MySQL AB, and Sybase® from Sybase Inc. Many other legacy data sources not contained in database form contain useful information that may be made available to users if offered as a web service.
Legacy database systems may, for example, be available through a user through a user interface. Currently, making a database available as a web service requires a change to a web server to include explicit mapping of database commands and parameters necessary to expose database procedures as a web service. Typically the Web Services Description Language (“WSDL”) is used to communicate details about how a client may call and use a web service. In addition, the web server or application server references an explicit mapping that defines how the web service name and parameters map to database procedure names and parameters. This is a disadvantage because data source owners and/or database developers must create a custom mapping for every database procedure. This mapping must be deployed to the web server configured to communicate with the data source. Requiring a database owner or developer to create an explicit mapping to make a data source and/or its database procedures accessible as a web service is cumbersome and inefficient. Data source administrators may be exposed to client technologies with which they might not be familiar or comfortable.